Growing complexity of storage infrastructure requires solutions for efficient use and management of resources. Storage virtualization enables administrators to manage distributed storage as if it were a single, consolidated resource. Storage virtualization helps the storage administrator to perform the tasks of resource allocation, backup, archiving and recovery more easily and in less time, by disguising the actual complexity of the storage systems (including storage network systems).
The virtualized storage system presents to the user a logical space for data storage and itself handles the process of mapping it to the actual physical location. The virtualized storage system may include modular storage arrays and a common virtual storage space enabling organization of the storage resources as a single logical pool available to users under a common management. For further fault tolerance, the storage systems may be designed as spreading data redundantly across a set of storage-nodes and enabling continuous operating when a hardware failure occurs. Fault tolerant data storage systems may store data across a plurality of disc drives and may include duplicate data, parity or other information that may be employed to reconstruct data if a drive fails.
The problems of mapping between logical and physical data addresses in virtualized storage systems have been recognized in the Prior Art and various systems have been developed to provide a solution, for example:
U.S. Pat. No. 5,392,244 (Jacobson et al.) discloses a method for managing data on a disk array, comprising the following steps: providing physical storage space on a disk array of plural disks; mapping the physical storage space into a first virtual storage space having first and second RAID areas, the first RAID area having first allocation blocks for holding data according to a first RAID level and the second RAID area having second allocation blocks for holding data according to a second RAID level; mapping the first virtual storage space into a second virtual storage space having multiple virtual blocks, the first and second virtual blocks being associated with the first and second allocation blocks in respective RAID areas via a virtual block table; selecting a first virtual block associated with a first allocation block in a first RAID area; locating a second allocation block in a second RAID area; transferring selected data from said first allocation block to said second allocation block so that the selected data once stored according to the first RAID level is now stored according to the second RAID level; and modifying the virtual block table to reflect the transfer data to the second RAID area.
U.S. Pat. No. 6,889,309 (Oliveira et al.) discloses a method and apparatus for managing a virtual data storage object in a computer system including at least one host and at least one storage device that present at least one storage disk to the host as a storage resource. The host includes at least one of an LVM and a file system. The virtual data storage object is created so that at least one of a logical volume and a file is employed as a storage resource to store data stored to the virtual data storage object. Another embodiment forms a virtual data storage object with data images stored on logical volumes from LVMs on different hosts. A further embodiment forms a virtual data storage object with one data image stored to a disk and another stored to a logical volume. Another embodiment is directed to a method and apparatus for distributing the metadata that defines a virtual storage object about the computer system.
U.S. Pat. No. 6,898,670 (Nahum) discloses a distributed architecture for the virtualization of storage capacity in a Storage Area Network (SAN) and for the management of virtual and physical memory. There is provided a virtualization software computer program consisting of two portions, namely virtualization and translation, each portion residing in a different location but both portions operating interactively. A SAN coupling an array of hosts via a Network Switch to an array of storage devices is equipped with a Storage Virtualization Manager. The SVM operating the virtualization computer software handles physical storage capacity virtualization and metadata management. The Network Switch routes storage I/O operations between the hosts and the storage devices, while the translation software resides in a processor, in either a host or elsewhere on the Network Switch SAN. Although the Network Switch and the SVM decouple tasks to relieve load and prevent bottlenecks, practical implementation permits to design the Network Switch, the processor(s) operating the virtualization program, and the SVM in many configurations spanning from distributed to integrated packaging. The virtualization software also supports real time configuration adaptation of changes occurring in the configuration of the array of hosts and of storage devices of the SAN.
U.S. Pat. No. 6,996,582 (Daniels et al.) discloses a virtual storage system and operational method thereof. The virtual storage system includes a physical storage space configured to store data, a virtual storage space adapted to provide a representation of data stored within the physical storage space to a host, a memory configured to store a plurality of pointers utilized to implement addressing intermediate the physical storage space and the virtual storage space, and a controller configured to extract selected ones of the pointers from the memory and to provide the selected pointers in another storage location different than the memory at a first moment in time and to extract the selected pointers from the another storage location and to provide the selected pointers in the memory at a second moment in time subsequent to the first moment in time.
U.S. Pat. No. 7,124,275 (Gammel et al.) discloses a method for determining a physical address from a virtual address, wherein a mapping regulation between the virtual address and the physical address is implemented as a hierarchical tree structure with compressed nodes. First, a compression indicator included in the mapping regulation is read, and a portion of the virtual address associated with the considered node level is read. Using the compression indicator and the portion of the virtual address, an entry in the node list of the considered node is determined. The determined entry is read, whereupon the physical address can be determined directly, if the considered node level has been the hierarchically lowest node level. If higher node levels to be processed are present, the previous steps in determining the physical address for compressed nodes of lower hierarchy level are repeated until the hierarchically lowest node level is reached.
U.S. Pat. No. 7,386,697 (Case et al.) discloses a virtual memory system, wherein address translation information is provided using a cluster that is associated with some range of virtual addresses and that can be used to translate any virtual address in its range to a physical address. The sizes of the ranges mapped by different clusters may be different. Clusters are stored in an address translation table that is indexed by a virtual address so that, starting from any valid virtual address, the appropriate cluster for translating that address can be retrieved from the translation table. The clusters are dynamically created from a fragmented pool of physical addresses as new virtual address mappings are requested by consumers of the virtual memory space.
U.S. Patent Application No. 2007/101,083 (Ogihara et al.) discloses a virtual storage system control apparatus comprising a plurality of storage device control sections that assign virtual volumes to the storage devices of the virtual storage clusters, generate information on the virtual volumes, set up a link between the virtual volumes of the own virtual storage clusters and the virtual volumes of other virtual storage clusters by way of the network and copy data on the basis of the link and a management node that directs a move of a virtual volume by having the link set up according to the information on the virtual volumes.